// 模块管理工具
import { ref } from 'vue'

// 模块注册表
const modules = ref([])

/**
 * 注册新模块
 * @param {Object} moduleInfo - 模块信息
 * @param {string} moduleInfo.name - 模块名称
 * @param {string} moduleInfo.path - 路由路径
 * @param {string} moduleInfo.description - 模块描述
 * @param {Component} moduleInfo.component - 模块组件
 */
export function registerModule(moduleInfo) {
  const module = {
    name: moduleInfo.name,
    path: moduleInfo.path,
    description: moduleInfo.description,
    component: moduleInfo.component,
    isNew: false,
    id: Date.now() // 简单的ID生成，实际项目中可能需要更复杂的逻辑
  }

  modules.value.push(module)
  console.log(`Module '${moduleInfo.name}' registered successfully`)
  return module
}

/**
 * 获取所有模块
 * @returns {Array} 模块列表
 */
export function getModules() {
  return modules.value
}

/**
 * 根据路径查找模块
 * @param {string} path - 路由路径
 * @returns {Object|null} 找到的模块或null
 */
export function findModuleByPath(path) {
  return modules.value.find(module => module.path === path) || null
}

/**
 * 删除模块
 * @param {string} moduleId - 模块ID
 * @returns {boolean} 是否删除成功
 */
export function unregisterModule(moduleId) {
  const index = modules.value.findIndex(module => module.id === moduleId)
  if (index > -1) {
    const removedModule = modules.value.splice(index, 1)[0]
    console.log(`Module '${removedModule.name}' unregistered successfully`)
    return true
  }
  return false
}

/**
 * 批量注册模块
 * @param {Array} moduleList - 模块列表
 */
export function registerMultipleModules(moduleList) {
  moduleList.forEach(moduleInfo => registerModule(moduleInfo))
}